1 module directx.d3d11_2; 2 /*------------------------------------------------------------------------------------- 3 * 4 * Copyright (c) Microsoft Corporation 5 * 6 *-------------------------------------------------------------------------------------*/ 7 8 version(Windows): 9 version(Direct3D_11): 10 11 public import directx.dxgi1_3; 12 public import directx.d3d11_1; 13 14 struct D3D11_TILED_RESOURCE_COORDINATE 15 { 16 UINT X; 17 UINT Y; 18 UINT Z; 19 UINT Subresource; 20 } 21 22 struct D3D11_TILE_REGION_SIZE 23 { 24 UINT NumTiles; 25 BOOL bUseBox; 26 UINT Width; 27 UINT16 Height; 28 UINT16 Depth; 29 } 30 31 alias D3D11_TILE_MAPPING_FLAG = int; 32 enum : D3D11_TILE_MAPPING_FLAG 33 { 34 D3D11_TILE_MAPPING_NO_OVERWRITE = 0x1 35 } 36 37 alias D3D11_TILE_RANGE_FLAG = int; 38 enum : D3D11_TILE_RANGE_FLAG 39 { 40 D3D11_TILE_RANGE_NULL = 0x1, 41 D3D11_TILE_RANGE_SKIP = 0x2, 42 D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 0x4 43 } 44 45 struct D3D11_SUBRESOURCE_TILING 46 { 47 UINT WidthInTiles; 48 UINT16 HeightInTiles; 49 UINT16 DepthInTiles; 50 UINT StartTileIndexInOverallResource; 51 } 52 53 enum D3D11_PACKED_TILE = ( 0xffffffff ); 54 55 struct D3D11_TILE_SHAPE 56 { 57 UINT WidthInTexels; 58 UINT HeightInTexels; 59 UINT DepthInTexels; 60 } 61 62 struct D3D11_PACKED_MIP_DESC 63 { 64 UINT8 NumStandardMips; 65 UINT8 NumPackedMips; 66 UINT NumTilesForPackedMips; 67 UINT StartTileIndexInOverallResource; 68 } 69 70 alias D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG = int; 71 enum : D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG 72 { 73 D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 0x1 74 } 75 76 alias D3D11_TILE_COPY_FLAG = int; 77 enum : D3D11_TILE_COPY_FLAG 78 { 79 D3D11_TILE_COPY_NO_OVERWRITE = 0x1, 80 D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, 81 D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 82 } 83 84 mixin( uuid!(ID3D11DeviceContext2, "420d5b32-b90c-4da4-bef0-359f6a24a83a") ); 85 extern (C++) interface ID3D11DeviceContext2 : ID3D11DeviceContext1 86 { 87 HRESULT UpdateTileMappings( 88 ID3D11Resource pTiledResource, 89 UINT NumTiledResourceRegions, 90 const(D3D11_TILED_RESOURCE_COORDINATE)* pTiledResourceRegionStartCoordinates, 91 const(D3D11_TILE_REGION_SIZE)* pTiledResourceRegionSizes, 92 ID3D11Buffer pTilePool, 93 UINT NumRanges, 94 const(UINT)* pRangeFlags, 95 const(UINT)* pTilePoolStartOffsets, 96 const(UINT)* pRangeTileCounts, 97 UINT Flags); 98 99 HRESULT CopyTileMappings( 100 ID3D11Resource pDestTiledResource, 101 const(D3D11_TILED_RESOURCE_COORDINATE)* pDestRegionStartCoordinate, 102 ID3D11Resource pSourceTiledResource, 103 const(D3D11_TILED_RESOURCE_COORDINATE)* pSourceRegionStartCoordinate, 104 const(D3D11_TILE_REGION_SIZE)* pTileRegionSize, 105 UINT Flags); 106 107 void CopyTiles( 108 ID3D11Resource pTiledResource, 109 const(D3D11_TILED_RESOURCE_COORDINATE)* pTileRegionStartCoordinate, 110 const(D3D11_TILE_REGION_SIZE)* pTileRegionSize, 111 ID3D11Buffer pBuffer, 112 UINT64 BufferStartOffsetInBytes, 113 UINT Flags); 114 115 void UpdateTiles( 116 ID3D11Resource pDestTiledResource, 117 const(D3D11_TILED_RESOURCE_COORDINATE)* pDestTileRegionStartCoordinate, 118 const(D3D11_TILE_REGION_SIZE)* pDestTileRegionSize, 119 const(void*) pSourceTileData, 120 UINT Flags); 121 122 HRESULT ResizeTilePool( 123 ID3D11Buffer pTilePool, 124 UINT64 NewSizeInBytes); 125 126 void TiledResourceBarrier( 127 ID3D11DeviceChild pTiledResourceOrViewAccessBeforeBarrier, 128 ID3D11DeviceChild pTiledResourceOrViewAccessAfterBarrier); 129 130 BOOL IsAnnotationEnabled(); 131 132 void SetMarkerInt( 133 LPCWSTR pLabel, 134 INT Data); 135 136 void BeginEventInt( 137 LPCWSTR pLabel, 138 INT Data); 139 140 void EndEvent(); 141 } 142 143 mixin( uuid!(ID3D11Device2, "9d06dffa-d1e5-4d07-83a8-1bb123f2f841") ); 144 extern (C++) interface ID3D11Device2 : ID3D11Device1 145 { 146 void GetImmediateContext2( 147 /*out*/ ID3D11DeviceContext2* ppImmediateContext); 148 149 HRESULT CreateDeferredContext2( 150 UINT ContextFlags, 151 /*out*/ ID3D11DeviceContext2* ppDeferredContext); 152 153 void GetResourceTiling( 154 ID3D11Resource pTiledResource, 155 /*out*/ UINT* pNumTilesForEntireResource, 156 /*out*/ D3D11_PACKED_MIP_DESC* pPackedMipDesc, 157 /*out*/ D3D11_TILE_SHAPE* pStandardTileShapeForNonPackedMips, 158 /*inout*/ UINT *pNumSubresourceTilings, 159 UINT FirstSubresourceTilingToGet, 160 /*out*/ D3D11_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips); 161 162 HRESULT CheckMultisampleQualityLevels1( 163 DXGI_FORMAT Format, 164 UINT SampleCount, 165 UINT Flags, 166 /*out*/ UINT* pNumQualityLevels); 167 }